1 /* 2 D bindings for CUDA. 3 Authors: Prasun Anand 4 Copyright: Copyright (c) 2017, Prasun Anand. All rights reserved. 5 License: BSD 3-Clause License 6 */ 7 8 module cuda_d.cuComplex; 9 10 import cuda_d.vector_types; 11 12 extern (C): 13 14 alias cuFloatComplex = float2_; 15 16 float cuCrealf (cuFloatComplex x); 17 18 float cuCimagf (cuFloatComplex x); 19 20 cuFloatComplex make_cuFloatComplex (float r, float i); 21 22 cuFloatComplex cuConjf (cuFloatComplex x); 23 cuFloatComplex cuCaddf (cuFloatComplex x, cuFloatComplex y); 24 25 cuFloatComplex cuCsubf (cuFloatComplex x, cuFloatComplex y); 26 27 cuFloatComplex cuCmulf (cuFloatComplex x, cuFloatComplex y); 28 29 cuFloatComplex cuCdivf (cuFloatComplex x, cuFloatComplex y); 30 31 float cuCabsf (cuFloatComplex x); 32 33 alias cuDoubleComplex = double2_; 34 35 double cuCreal (cuDoubleComplex x); 36 37 double cuCimag (cuDoubleComplex x); 38 39 cuDoubleComplex make_cuDoubleComplex (double r, double i); 40 41 cuDoubleComplex cuConj (cuDoubleComplex x); 42 43 cuDoubleComplex cuCadd (cuDoubleComplex x, cuDoubleComplex y); 44 45 cuDoubleComplex cuCsub (cuDoubleComplex x, cuDoubleComplex y); 46 47 cuDoubleComplex cuCmul (cuDoubleComplex x, cuDoubleComplex y); 48 49 cuDoubleComplex cuCdiv (cuDoubleComplex x, cuDoubleComplex y); 50 51 double cuCabs (cuDoubleComplex x); 52 53 alias cuComplex = float2_; 54 55 cuComplex make_cuComplex (float x, float y); 56 57 cuDoubleComplex cuComplexFloatToDouble (cuFloatComplex c); 58 59 cuFloatComplex cuComplexDoubleToFloat (cuDoubleComplex c);